#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int N=100005;
int n;
long long a[N];
long long l[N];
long long r[N];
int main(void){
    while(~scanf("%d",&n) && n){
        memset(a,0,sizeof(a));
        memset(l,0,sizeof(l));
        memset(r,0,sizeof(r));
        for(int i=1;i<=n;i++){
            scanf("%lld",&a[i]);
        }
        l[1]=1;
        for(int i=2;i<=n;i++){
            int t=i;
            //这里t大于等于1就死循环超时
            while(t>1 && a[i]<=a[t-1]){
                //类似kmp的那种跳转
                t=l[t-1];
            }
            l[i]=t;
        }
        r[n]=n;
        for(int i=n-1;i>=1;i--){
            int t=i;
            while(t<n && a[i]<=a[t+1]){
                t=r[t+1];
            }
            r[i]=t;
        }
        // for(int i=1;i<=n;i++){
        //     printf("%d %d\n",l[i],r[i]);
        // }
        long long _max=0;
        for(int i=1;i<=n;i++){
            if((r[i]-l[i]+1)*a[i]>_max){
                _max=(r[i]-l[i]+1)*a[i];
            }
        }
        printf("%lld\n",_max);
    }
    return 0;
}